package com.aqie.easy.array;

import java.util.Arrays;

/**
 * 26. 原地删除排序数组中的重复项
 */
public class RemoveDuplicates {
    public static int removeDuplicates(int[] nums) {
        /**
         * 遇到重复项 增加j跳过
         * num[i] != num[j] 时， i++ 将num[j]值复制到num[i]
         * i的位置就是不重复数组左后的下标，所以总长度再+1
         */
        if (nums.length == 0) return 0;
        int i = 0;
        for(int j = 1;j < nums.length; j++ ){
            if (nums[i] != nums[j]){
                i++;
                // 只有i j 不相等时才需要赋值
                if (i < j) {
                    nums[i] = nums[j];
                }
            }
        }
        return i + 1;
    }

    public static void main(String[] args) {
        int[] nums = {1,2,3,4};
        int i = removeDuplicates(nums);
        System.out.println(Arrays.toString(nums));
        System.out.println(i);
    }
}
